package ae.pcfc.etks.online.itworx.ehs.web.delegate;

import java.util.List;

import ae.pcfc.etks.online.common.vo.UserDetailVO;
import ae.pcfc.etks.online.fnp.service.types.CancelPaymentAdviceResponse;
import ae.pcfc.etks.online.itworx.ehs.web.exception.CommunicationException;
import ae.pcfc.etks.online.itworx.ehs.web.exception.FNPServiceExpcetion;
import ae.pcfc.etks.online.itworx.ehs.web.model.FNP;
import ae.pcfc.etks.online.itworx.ehs.web.model.FNPFeesService;
import ae.pcfc.etks.online.itworx.ehs.web.model.PaymentAdvice;

public interface FNPDelegate extends BaseDelegate {

	List<FNPFeesService> getServices() throws CommunicationException,FNPServiceExpcetion;

	List<FNPFeesService> getServiceInfoAndParameters(List<String> servicesId)
			throws CommunicationException,FNPServiceExpcetion;

	Double previewPaymentAdvice(FNP fnpModel,
			UserDetailVO userDetails)
			throws CommunicationException,FNPServiceExpcetion;

	PaymentAdvice generatePaymentAdvice(FNP fnpModel,String userName,String transactionNumber,
			UserDetailVO userDetails)
			throws CommunicationException,FNPServiceExpcetion;
	
	String queryPaymentAdviceStatus(String paymentAdviceNumber)
	throws CommunicationException,FNPServiceExpcetion;
	
	public CancelPaymentAdviceResponse cancelPaymentAdvice(String transactionNumber, String paymentAdviceNumber, String userName,String message) throws CommunicationException,FNPServiceExpcetion;
}